SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROC [dbo].[SP_TXMVTO_CNTB_Q47]  
/*-------------------------------------------------------------------*/                            
/*----- Empresa           : OFISIS S.A.                          ----*/                            
/*----- Cliente           : OFISIS S.A.                          ----*/                            
/*----- Sistema           : Contabilidad                         ----*/                            
/*----- Modulo            : Empresa                              ----*/                            
/*----- Programa          : PDB de Ventas - CALCULO DE DATOS DEL DOC REFERENCIA    ----*/                            
/*----- Nombre            : SP_TXMVTO_CNTB_Q47               ----*/                             
/*----- Script            : TXMVTO_CNTB                          ----*/                            
/*----- Desarrollado por  : Franco Gamboni Koifman               ----*/                            
/*----- Fecha             : 16/09/1997                           ----*/                            
/*----- Base de Datos     : MS SQL Server                        ----*/                            
/*----- Version BD        : 8.0                                  ----*/                            
/*-------------------------------------------------------------------*/                            
/*-------------------------------------------------------------------*/                            
/*----- Drop proc SP_TXMVTO_CNTB_Q47                             ----*/                
/*----- Grant all on SP_TXMVTO_CNTB_Q47 to PUBLIC     ----*/                            
/*-----   
EXEC SP_TXMVTO_CNTB_Q47 '01', ' ', 1, 2006, 9,9, 'T', '', '', ''   
 ----*/                            
/*-------------------------------------------------------------------*/                            
@ISCO_EMPR        TD_VC_002,                            
@INNU_CNTB_EMPR   TD_IN_001_CONT,                            
@INNU_ANNO        TD_IN_004_ANNO,                            
@INNU_MESE_INIC   TD_IN_002_MESE,                            
@INNU_MESE_FINA   TD_IN_002_MESE,
@ISCO_CNTA_EMPR   TD_VC_020,
@ISTI_AUXI_EMPR   TD_VC_001,
@ISCO_AUXI_EMPR   TD_VC_020,
@ISTI_DOCU        TD_VC_003,
@ISNU_DOCU        TD_VC_020,
@ISTI_REPO_INFO   TD_VC_003,
@VNIM_VALO_BASE TD_NU_016_004 OUT ,
@VNIM_VALO_IIGV TD_NU_016_004 OUT
/*,@ISFI_0001        TD_VC_001,  
@ISTI_REPO        TD_VC_003,                            
@ISTI_ORDE_REPO   TD_VC_003,                            
@ISTI_REPO_INFO   TD_VC_003                            */                         
As                            
Create Table #TWMVTO_APAG_0002                            
(FE_DOCU  Datetime NULL,                            
 TI_DOCU_SUNA Char(2)  NULL,                            
 TI_DOCU Char(3)  NULL,                            
 NO_DOCU        Varchar(50) NULL,                  
 NU_DOCU Char(20) NULL,                            
 CO_UNID_CNTB Char(3)  NULL,                            
 CO_OPRC Char(3)  NULL,                            
 NU_ASTO Char(10) NULL,                            
 CO_CLIE Varchar(20) NULL,                   
 NO_CORT_CLIE Char(50) NULL,                            
 NU_RUCS_CLIE varchar(20) NULL,                            
 CO_MONE Char(3)  NULL,                            
 IM_INAF_ORIG Numeric(16,4)  NULL,                            
 IM_AFEC_ORIG Numeric(16,4)  NULL,                            
 IM_EXPO_ORIG Numeric(16,4)  NULL,                                
 IM_IIGV_ORIG Numeric(16,4)  NULL,                            
 IM_TOTA_ORIG Numeric(16,4)  NULL,                            
 IM_INAF_CNTB Numeric(16,4)  NULL,                            
 IM_AFEC_CNTB Numeric(16,4)  NULL,                            
 IM_EXPO_CNTB Numeric(16,4)  NULL,                            
 IM_IIGV_CNTB Numeric(16,4)  NULL,                            
 IM_TOTA_CNTB Numeric(16,4)  NULL,                           
 FA_CAMB Numeric(9,4)   NULL,                       
 IM_IIGV_IISC   Numeric(16,4)  NULL,       
 CO_SUNA_REFE Varchar(2) NULL,       
 TI_DOCU_REFE Varchar(3) NULL,      
 NU_DOCU_REFE Varchar(20) NULL,  
 FE_DOCU_REFE DateTime NULL,  
 TI_AUXI_EMPR Varchar(1) NULL,                 
 CO_AUXI_EMPR Varchar(20) NULL,  
 CO_EMPR Varchar(2) NULL  
 )                            
                            
Declare                             
 @VDFE_DOCU     TD_DT_001,                            
 @CSNU_ASTO_BASE    Char(20),  --Char(16),                                
 @VSCO_MONE_BASE    TD_VC_003,                            
 @VSCO_MONE_BAS1    TD_VC_003,                            
 @VSTI_DOCU     TD_VC_003,                            
 @VSNU_DOCU     TD_VC_020,                            
 @VSCO_UNID     TD_VC_003,                            
 @VSCO_OPRC     TD_VC_003,                            
 @CSNU_ASTO     TD_VC_010,                            
 @CSCO_AUXI     TD_VC_020,                            
 @VSNO_CORT_CLIE    TD_VC_050,                            
 @VSNU_RUCS_CLIE    TD_VC_020,                            
 @VSCO_MONE  TD_VC_003,                            
 @VSCO_OPR1     TD_VC_003,                            
 @VSCO_OPR2     TD_VC_003,                            
 @VSID_VENT      TD_VC_003,                            
 @VSID_IIGV      TD_VC_003,                            
 @VSID_FONA      TD_VC_003,                            
 @VSID_RENT      TD_VC_003,                            
 @VSCO_SUNA        TD_VC_002,                            
 @VSID_EXPO      TD_VC_003,                            
 @VNIM_TOTA_BASX    TD_NU_016_004,                            
 @VNIM_TOTA_BASY    TD_NU_016_004,                            
 @VNIM_INAF_ORIX    TD_NU_016_004,                            
 @VNIM_AFEC_ORIX    TD_NU_016_004,                            
 @VNIM_EXPO_ORIX    TD_NU_016_004,                            
 @VNIM_IIGV_ORIX    TD_NU_016_004,                            
 @VNIM_TOTA_ORIX    TD_NU_016_004,                            
 @VNIM_INAF_SOLX    TD_NU_016_004,                            
 @VNIM_AFEC_SOLX    TD_NU_016_004,                        
 @VNIM_EXPO_SOLX    TD_NU_016_004,                            
 @VNIM_IIGV_SOLX    TD_NU_016_004,                            
 @VNIM_TOTA_SOLX    TD_NU_016_004,                            
 @VNFA_CAMB     TD_NU_009_004,                            
 @VNIM_IIGV_ORIG    TD_NU_016_004,                            
 @VNIM_TOTA_ORIG    TD_NU_016_004,                            
 @VNIM_EXPO_ORIG    TD_NU_016_004,                            
 @VNIM_IIGV_CNTB    TD_NU_016_004,                            
 @VNIM_TOTA_CNTB    TD_NU_016_004,                            
 @VNPO_IGV1     TD_NU_009_004,                            
 @VNPO_IGV2     TD_NU_009_004,                            
 @VNPO_REN1     TD_NU_009_004,                            
 @VNPO_REN2     TD_NU_009_004,                            
 @CDFE_DOCU     TD_DT_001,                            
 @CSTI_DOCU_CNTB    TD_VC_003,                            
 @CSNU_DOCU     TD_VC_020,                            
 @CSCO_UNID     TD_VC_003,                            
 @CSCO_OPRC     TD_VC_003,                            
 @VSNU_ASTO     TD_VC_010,                            
 @CSCN_CNTB_EMPR    TD_VC_010,                            
 @CSTI_OPER_CNTB    TD_VC_003,                            
 @CSCO_MONE     TD_VC_003,                            
 @CNFA_CAMB     TD_NU_009_004,                            
 @CNIM_MVTO_ORIG    TD_NU_016_004,                            
 @CNIM_MVTO_CNTB    TD_NU_016_004,                            
 @CSID_CNTA      TD_VC_003,                            
 @CSTI_AUXI_EMPR   TD_VC_001,                            
 @VSNO_DOCU          TD_VC_050,                            
 ----------------------------------------                            
@VSNU_CNTB_EMPR  TD_VC_001,                            
@VSNU_ANNO       TD_VC_004,                            
@VSNU_MESE_INIC  TD_VC_002,                             
@VSNU_MESE_FINA  TD_VC_002,                            
@CNNU_MESE       TD_IN_002_MESE,                            
@CNPO_REN1   TD_NU_009_004,                            
@CNPO_REN2   TD_NU_009_004,                            
@CNPO_IGV1        TD_NU_009_004,                            
@CNPO_IGV2   TD_NU_009_004,                            
@VSCO_AUXI   TD_VC_020,                              
@VNPO_IGV1_ANNO   TD_NU_009_004,                              
@VNPO_IGV2_ANNO   TD_NU_009_004,                            
@VSCO_SUNA_0001   TD_VC_002,                            
@VSCO_SUNA_NOCR   TD_VC_002,                            
@VSNU_DOCU_0001   TD_VC_020,                            
@VDFE_DOCU_0001   TD_DT_001,                 
                
@CDFE_ASTO_CNTB TD_DT_001,                 
@VDFE_ASTO_CNTB TD_DT_001,                 
@CSTI_CAMB TD_VC_003,                 
@VSTI_CAMB_BASE TD_VC_003,                 
@VNIM_TOTA_CONT TD_NU_016_004,            
@VNIM_IIGV_CONT TD_NU_016_004,            
@VNIM_EXPO_CONT TD_NU_016_004,                           
@VNIM_CONT_BASX TD_NU_016_004,                           
@VNIM_CONT_BASY TD_NU_016_004,            
            
@VNIM_AFEC_CONX TD_NU_016_004,            
@VNIM_INAF_CONX TD_NU_016_004,            
@CSST_CNTA_CAMB TD_VC_003,           
@CSCO_SUNA_REFE Varchar(2),       
@CSTI_DOCU_REFE TD_VC_003,           
@CSNU_DOCU_REFE TD_VC_020,       
@VSCO_SUNA_REFE Varchar(2),       
@VSTI_DOCU_REFE TD_VC_003,           
@VSNU_DOCU_REFE TD_VC_020,       
@VSTI_AUXI_EMPR TD_VC_001,  
@VSCO_AUXI_EMPR TD_VC_020,
@CDFE_DOCU_REFE TD_DT_001,
@VDFE_DOCU_REFE TD_DT_001

            
 Select @VNIM_TOTA_CONT = 0.00            
 Select @VNIM_IIGV_CONT = 0.00            
 Select @VNIM_EXPO_CONT = 0.00            
 Select @VNIM_AFEC_CONX = 0.00            
 Select @VNIM_INAF_CONX = 0.00            
            
 Select @VNIM_IIGV_ORIG = 0.00                            
 Select @VNIM_TOTA_ORIG = 0.00                            
 Select @VNIM_EXPO_ORIG = 0.00              
 Select @VDFE_DOCU      = Null                            
 Select @VSTI_DOCU      = Null                            
 Select @VSNO_CORT_CLIE = Null                            
 Select @VSNU_RUCS_CLIE = Null                            
 Select @VSCO_MONE      = Null                            
 Select @VNIM_AFEC_ORIX = 0.00                            
 Select @VNIM_INAF_ORIX = 0.00                            
 Select @VNIM_EXPO_ORIX = 0.00                            
 Select @VNIM_IIGV_ORIX = 0.00                            
 Select @VNIM_TOTA_ORIX = 0.00                            
 Select @VNIM_AFEC_SOLX = 0.00                            
 Select @VNIM_INAF_SOLX = 0.00                            
 Select @VNIM_EXPO_SOLX = 0.00                            
 Select @VNIM_IIGV_SOLX = 0.00                            
 Select @VNIM_TOTA_ORIX = 0.00                            
 Select @VNFA_CAMB      = 0.00                                
 Select @VSNU_ASTO = Null                            
 Select @VSTI_CAMB_BASE = NULL                
 Select @VDFE_ASTO_CNTB = NULL                
 Select @VSTI_DOCU_REFE = NULL      
 Select @VSNU_DOCU_REFE = NULL      
 Select @VDFE_DOCU_REFE = NULL      
 Select @VSTI_AUXI_EMPR = NULL  
 Select @VSCO_AUXI_EMPR = NULL  
  
                         
Select @VSCO_MONE_BAS1 = CO_MONE,                             
       @VSID_VENT = ID_VENT,                             
       @VSID_IIGV = ID_IMPT_VENT,                            
       @VSID_EXPO = ID_0003                            
  From TTCNTB_EMPR                       
Where CO_EMPR = @ISCO_EMPR                             
  and NU_CNTB_EMPR = @INNU_CNTB_EMPR                            
        
/*----- Cursor para el reporte de Registro de Compras -----*/                            
Select @VSNU_CNTB_EMPR = Convert(Varchar(1),@INNU_CNTB_EMPR)                            
Select @VSNU_ANNO      = Convert(Varchar(4),@INNU_ANNO )                            
Select @VSNU_MESE_INIC = Convert(Varchar(2),@INNU_MESE_INIC )                            
Select @VSNU_MESE_FINA = Convert(Varchar(2),@INNU_MESE_FINA )                            
                      
-- OBTENGO EL IGV ANTES DE DEFINIR EL CURSOR                            
                          
Select @VSCO_SUNA_NOCR = CO_SUNA_NOCR From TMPARA_CONT                           
Where CO_EMPR = @ISCO_EMPR                          
                            
SELECT @VNPO_IGV1_ANNO = PO_IMPT_VEN1,                            
       @VNPO_IGV2_ANNO = PO_IMPT_VEN2,                             
       @VNPO_REN1 = PO_IMPT_REN1,                            
       @VNPO_REN2 = PO_IMPT_REN2                            
From  TTPORC_IMPT                            
Where CO_EMPR = @ISCO_EMPR                            
And   NU_ANNO = @INNU_ANNO                            
And   NU_MESE = @INNU_MESE_FINA                            
                            
If @VNPO_IGV1_ANNO IS Null                            
 Select @VNPO_IGV1_ANNO = 0.00                            
If @VNPO_IGV2_ANNO IS Null                            
 Select @VNPO_IGV2_ANNO = 0.00                            
If @VNPO_REN1 IS Null                            
 Select @VNPO_REN1 = 0.00                            
If @VNPO_REN2 IS Null                            
 Select @VNPO_REN2 = 0.00                            
  
Exec(' Declare CU_TXMVTO_CNTB_Q47_1 Cursor For   
 Select  TXMVTO_CNTB.FE_DOCU, TXMVTO_CNTB.TI_DOCU, TXMVTO_CNTB.NU_DOCU, TXMVTO_CNTB.CO_UNID_CNTB,   
 TXMVTO_CNTB.CO_OPRC_CNTB, TXMVTO_CNTB.NU_MESE, TXMVTO_CNTB.NU_ASTO, TXMVTO_CNTB.TI_AUXI_EMPR,   
 TXMVTO_CNTB.CO_AUXI_EMPR, TXMVTO_CNTB.CO_CNTA_EMPR, TXMVTO_CNTB.TI_OPER, TXMVTO_CNTB.CO_MONE,   
 TXMVTO_CNTB.FA_CAMB, TXMVTO_CNTB.IM_MVTO_ORIG, TXMVTO_CNTB.IM_MVTO_CNTB, TTIDEN_CNTA.ID_CNTA,   
 IsNull(TTPORC_IMPT.PO_IMPT_REN1,0), IsNull(TTPORC_IMPT.PO_IMPT_REN2,0),   
 IsNull(TTPORC_IMPT.PO_IMPT_VEN1,0), IsNull(TTPORC_IMPT.PO_IMPT_VEN2,0), TXMVTO_CNTB.FE_ASTO_CNTB, TXMVTO_CNTB.TI_CAMB, TMPLAN_ANNO.ST_CNTA_CAMB,   
 TTDOCU_CNTB.CO_SUNA, TXMVTO_CNTB.TI_DOCU_REFE,TXMVTO_CNTB.NU_DOCU_REFE,TXMVTO_CNTB.FE_DOCU_REFE
 From  

(Select tY.CO_EMPR,tY.NU_CNTB_EMPR,tY.CO_UNID_CNTB,tY.CO_OPRC_CNTB,tY.NU_ANNO,tY.NU_MESE,tY.NU_ASTO
 From TXMVTO_CNTB tY
 Where tY.CO_EMPR = "' + @ISCO_EMPR + '"
 And tY.NU_CNTB_EMPR = ' + @VSNU_CNTB_EMPR + '
 And tY.CO_OPRC_CNTB In (   
     Select T1.CO_OPRC_CNTB From TTIDEN_OPER T1   
     Where T1.CO_EMPR = tY.CO_EMPR   
     And T1.NU_CNTB_EMPR = tY.NU_CNTB_EMPR   
     And T1.ID_OPRC   = "' + @VSID_VENT + '" )   
And tY.NU_ANNO  = ' + @VSNU_ANNO + '   
And tY.TI_AUXI_EMPR = "' + @ISTI_AUXI_EMPR + '" 
And tY.CO_AUXI_EMPR = "' + @ISCO_AUXI_EMPR + '" 
And tY.TI_DOCU = "' + @ISTI_DOCU + '" 
And tY.NU_DOCU = "' + @ISNU_DOCU + '" 
And tY.SI_MVTO_CNTB = "APR"   

) tX, TXMVTO_CNTB

  Left Outer Join TTPORC_IMPT On  
  TTPORC_IMPT.CO_EMPR = TXMVTO_CNTB.CO_EMPR   
  And TTPORC_IMPT.NU_ANNO = TXMVTO_CNTB.NU_ANNO   
  And TTPORC_IMPT.NU_MESE = TXMVTO_CNTB.NU_MESE  
  
        Left Outer Join TTDOCU_CNTB On   
  TTDOCU_CNTB.TI_DOCU = TXMVTO_CNTB.TI_DOCU_REFE, TTIDEN_CNTA, TMPLAN_ANNO  
 Where tX.CO_EMPR = TXMVTO_CNTB.CO_EMPR
 And tX.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR
 And tX.CO_UNID_CNTB = TXMVTO_CNTB.CO_UNID_CNTB
 And tX.CO_OPRC_CNTB = TXMVTO_CNTB.CO_OPRC_CNTB
 And tX.NU_ANNO = TXMVTO_CNTB.NU_ANNO
 And tX.NU_MESE = TXMVTO_CNTB.NU_MESE
 And tX.NU_ASTO = TXMVTO_CNTB.NU_ASTO

And ((TXMVTO_CNTB.CO_CNTA_EMPR In (   
     Select T2.CO_CNTA_EMPR From TTIDEN_CNTA T2   
     Where T2.CO_EMPR = TXMVTO_CNTB.CO_EMPR  
 And T2.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR  
     And T2.ID_CNTA In ( "' + @VSID_VENT + '", "' + @VSID_EXPO + '"))  )                    
 Or  (TXMVTO_CNTB.CO_CNTA_EMPR In (   
     Select T2.CO_CNTA_EMPR From TTIDEN_CNTA T2   
     Where T2.CO_EMPR = TXMVTO_CNTB.CO_EMPR  
     And T2.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR  
     And T2.ID_CNTA = "' + @VSID_IIGV + '")))  
 And TXMVTO_CNTB.SI_MVTO_CNTB = "APR"   
 And TTIDEN_CNTA.CO_EMPR   = TXMVTO_CNTB.CO_EMPR   
 And TTIDEN_CNTA.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR   
 And TTIDEN_CNTA.NU_CNTB_EMPR = TXMVTO_CNTB.NU_CNTB_EMPR   
 And TMPLAN_ANNO.CO_EMPR = TXMVTO_CNTB.CO_EMPR   
 And TMPLAN_ANNO.CO_CNTA_EMPR = TXMVTO_CNTB.CO_CNTA_EMPR   
 Union All   
 Select Null, Null, Null, "99", "999", 99, "9999999999", Null, Null,   
 Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, Null,NULL   
 Order By 4,5,6,7,10,8,9 ' )                            
                            
Open CU_TXMVTO_CNTB_Q47_1                            
Fetch CU_TXMVTO_CNTB_Q47_1 into                             
    @CDFE_DOCU, @CSTI_DOCU_CNTB, @CSNU_DOCU, @CSCO_UNID, @CSCO_OPRC, @CNNU_MESE,                
    @CSNU_ASTO, @CSTI_AUXI_EMPR, @CSCO_AUXI, @CSCN_CNTB_EMPR, @CSTI_OPER_CNTB,                       
    @CSCO_MONE, @CNFA_CAMB, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSID_CNTA,                            
    @CNPO_REN1, @CNPO_REN2, @CNPO_IGV1, @CNPO_IGV2, @CDFE_ASTO_CNTB, @CSTI_CAMB, @CSST_CNTA_CAMB,       
    @CSCO_SUNA_REFE, @CSTI_DOCU_REFE, @CSNU_DOCU_REFE, @CDFE_DOCU_REFE
                            
Select @CSNU_ASTO_BASE = Null                            
Select @VSCO_MONE_BASE = Null                            
                            
While @@Fetch_status = 0                            
 Begin                            
                             
  If @CSNU_ASTO_BASE != Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) +                             
    Substring( Convert(Varchar(3),100 + @CNNU_MESE),2,2) + Rtrim(@CSNU_ASTO)                             
    And @VSCO_MONE_BASE IS NOT Null                            
   Begin                            
  
     Select @VNIM_TOTA_BASX = Round(@VNIM_TOTA_ORIG - @VNIM_IIGV_ORIG,2)                            
     Select @VNIM_TOTA_BASY = Round(@VNIM_IIGV_ORIG / ((@VNPO_IGV1 + @VNPO_IGV2) / 100),2)                            
            
     Select @VNIM_CONT_BASX = Round(@VNIM_TOTA_CONT - @VNIM_IIGV_CONT,2)                            
     Select @VNIM_CONT_BASY = Round(@VNIM_IIGV_CONT / ((@VNPO_IGV1 + @VNPO_IGV2) / 100),2)                            
                              
     If Abs(Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)) > 0.50                            
     Begin                            
      Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASY,2)                            
      Select @VNIM_INAF_ORIX = Round(@VNIM_TOTA_BASX - @VNIM_TOTA_BASY,2)                            
      Select @VNIM_AFEC_CONX = Round(@VNIM_CONT_BASY,2)                            
      Select @VNIM_INAF_CONX = Round(@VNIM_CONT_BASX - @VNIM_CONT_BASY,2)                            
     End                                
     Else                            
     Begin                            
      Select @VNIM_AFEC_ORIX = Round(@VNIM_TOTA_BASX,2)                            
      Select @VNIM_INAF_ORIX = 0.00                            
      Select @VNIM_AFEC_CONX = Round(@VNIM_CONT_BASX,2)                            
      Select @VNIM_INAF_CONX = 0.00                            
     End                
              
     If @VSCO_MONE != @VSCO_MONE_BAS1                            
     Begin                            
      Select @VNIM_EXPO_ORIX = @VNIM_EXPO_ORIG                            
      Select @VNIM_IIGV_ORIX = @VNIM_IIGV_ORIG                       
      Select @VNIM_TOTA_ORIX = @VNIM_TOTA_ORIG                            
                
      Select @VNIM_AFEC_SOLX = @VNIM_AFEC_CONX            
               
      Select @VNIM_INAF_SOLX = @VNIM_INAF_CONX            
              
      Select @VNIM_EXPO_SOLX = @VNIM_EXPO_CONT            
              
      Select @VNIM_IIGV_SOLX = @VNIM_IIGV_CONT            
              
      Select @VNIM_TOTA_SOLX = @VNIM_TOTA_CONT            
            
              
     End                            
     Else                          
     Begin                            
      Select @VNIM_AFEC_SOLX = Round(@VNIM_AFEC_ORIX,2)                            
      Select @VNIM_INAF_SOLX = Round(@VNIM_INAF_ORIX,2)                            
      Select @VNIM_EXPO_SOLX = Round(@VNIM_EXPO_ORIG,2)                            
      Select @VNIM_IIGV_SOLX = Round(@VNIM_IIGV_ORIG,2)                            
      Select @VNIM_TOTA_SOLX = Round(@VNIM_TOTA_ORIG,2)                            
      Select @VNIM_AFEC_ORIX = Null                            
      Select @VNIM_INAF_ORIX = Null                            
      Select @VNIM_IIGV_ORIX = Null                            
      Select @VNIM_TOTA_ORIX = Null                            
      Select @VNFA_CAMB = Null                            
     End                            
                            
     Select @VSCO_SUNA = CO_SUNA, @VSNO_DOCU = NO_DOCU                            
     From TTDOCU_CNTB                            
     Where TI_DOCU = @VSTI_DOCU                            
  
--SELECT 'PERCY1', @VNIM_EXPO_ORIX             
                  
     If @ISTI_REPO_INFO = 'OFI'                    
      Begin                  
  
If @VNIM_EXPO_ORIX != 0                  
 Begin                  
  Select @VNIM_INAF_ORIX = 0                  
  Select @VNIM_INAF_SOLX = 0                  
  Insert Into #TWMVTO_APAG_0002   
(FE_DOCU,TI_DOCU_SUNA,TI_DOCU,NO_DOCU,NU_DOCU,CO_UNID_CNTB,CO_OPRC,NU_ASTO,CO_CLIE,  
 NO_CORT_CLIE,NU_RUCS_CLIE,CO_MONE,IM_INAF_ORIG,IM_AFEC_ORIG,IM_EXPO_ORIG,IM_IIGV_ORIG,  
 IM_TOTA_ORIG,IM_INAF_CNTB,IM_AFEC_CNTB,IM_EXPO_CNTB,IM_IIGV_CNTB,IM_TOTA_CNTB,FA_CAMB,  
 IM_IIGV_IISC,CO_SUNA_REFE,TI_DOCU_REFE,NU_DOCU_REFE,FE_DOCU_REFE,TI_AUXI_EMPR,CO_AUXI_EMPR,CO_EMPR)  
  Values(                            
  @VDFE_DOCU, @VSCO_SUNA, @VSTI_DOCU, @VSNO_DOCU, @VSNU_DOCU, @VSCO_UNID,                             
  @VSCO_OPRC, @VSNU_ASTO, @VSCO_AUXI, @VSNO_CORT_CLIE, @VSNU_RUCS_CLIE,                             
  @VSCO_MONE, @VNIM_INAF_ORIX, @VNIM_AFEC_ORIX, @VNIM_EXPO_ORIX, @VNIM_IIGV_ORIX,                             
  @VNIM_TOTA_ORIX, @VNIM_INAF_SOLX, @VNIM_AFEC_SOLX, @VNIM_EXPO_SOLX, @VNIM_IIGV_SOLX,                             
  @VNIM_TOTA_SOLX, @VNFA_CAMB, 0.00, @VSCO_SUNA_REFE, @VSTI_DOCU_REFE, @VSNU_DOCU_REFE,@VDFE_DOCU_REFE,
  @VSTI_AUXI_EMPR,@VSCO_AUXI_EMPR,@ISCO_EMPR)  
 End  
Else --If @VNIM_EXPO_ORIX = 0                  
 Insert Into #TWMVTO_APAG_0002   
(FE_DOCU,TI_DOCU_SUNA,TI_DOCU,NO_DOCU,NU_DOCU,CO_UNID_CNTB,CO_OPRC,NU_ASTO,CO_CLIE,  
 NO_CORT_CLIE,NU_RUCS_CLIE,CO_MONE,IM_INAF_ORIG,IM_AFEC_ORIG,IM_EXPO_ORIG,IM_IIGV_ORIG,  
 IM_TOTA_ORIG,IM_INAF_CNTB,IM_AFEC_CNTB,IM_EXPO_CNTB,IM_IIGV_CNTB,IM_TOTA_CNTB,FA_CAMB,  
 IM_IIGV_IISC,CO_SUNA_REFE,TI_DOCU_REFE,NU_DOCU_REFE,FE_DOCU_REFE,TI_AUXI_EMPR,CO_AUXI_EMPR,CO_EMPR)  
 Values(                            
 @VDFE_DOCU, @VSCO_SUNA, @VSTI_DOCU, @VSNO_DOCU, @VSNU_DOCU, @VSCO_UNID,                             
 @VSCO_OPRC, @VSNU_ASTO, @VSCO_AUXI, @VSNO_CORT_CLIE, @VSNU_RUCS_CLIE,                             
 @VSCO_MONE, @VNIM_INAF_ORIX, @VNIM_AFEC_ORIX, @VNIM_EXPO_ORIX, @VNIM_IIGV_ORIX,                             
 @VNIM_TOTA_ORIX, @VNIM_INAF_SOLX, @VNIM_AFEC_SOLX, @VNIM_EXPO_SOLX, @VNIM_IIGV_SOLX,                             
 @VNIM_TOTA_SOLX, @VNFA_CAMB, 0.00, @VSCO_SUNA_REFE, @VSTI_DOCU_REFE, @VSNU_DOCU_REFE,@VDFE_DOCU_REFE,
 @VSTI_AUXI_EMPR,@VSCO_AUXI_EMPR,@ISCO_EMPR)  
 End          
  
 Else --If @ISTI_REPO_INFO != 'OFI'                  
                
 Insert Into #TWMVTO_APAG_0002   
(FE_DOCU,TI_DOCU_SUNA,TI_DOCU,NO_DOCU,NU_DOCU,CO_UNID_CNTB,CO_OPRC,NU_ASTO,CO_CLIE,  
 NO_CORT_CLIE,NU_RUCS_CLIE,CO_MONE,IM_INAF_ORIG,IM_AFEC_ORIG,IM_EXPO_ORIG,IM_IIGV_ORIG,  
 IM_TOTA_ORIG,IM_INAF_CNTB,IM_AFEC_CNTB,IM_EXPO_CNTB,IM_IIGV_CNTB,IM_TOTA_CNTB,FA_CAMB,  
 IM_IIGV_IISC,CO_SUNA_REFE,TI_DOCU_REFE,NU_DOCU_REFE,FE_DOCU_REFE,TI_AUXI_EMPR,CO_AUXI_EMPR,CO_EMPR)  
 Values(                            
 @VDFE_DOCU, @VSCO_SUNA, @VSTI_DOCU, @VSNO_DOCU, @VSNU_DOCU, @VSCO_UNID,                             
 @VSCO_OPRC, @VSNU_ASTO, @VSCO_AUXI, @VSNO_CORT_CLIE, @VSNU_RUCS_CLIE,                             
 @VSCO_MONE, @VNIM_INAF_ORIX, @VNIM_AFEC_ORIX, @VNIM_EXPO_ORIX, @VNIM_IIGV_ORIX,                             
 @VNIM_TOTA_ORIX, @VNIM_INAF_SOLX, @VNIM_AFEC_SOLX, @VNIM_EXPO_SOLX, @VNIM_IIGV_SOLX,                             
 @VNIM_TOTA_SOLX, @VNFA_CAMB, 0.00, @VSCO_SUNA_REFE, @VSTI_DOCU_REFE, @VSNU_DOCU_REFE,@VDFE_DOCU_REFE,
 @VSTI_AUXI_EMPR,@VSCO_AUXI_EMPR,@ISCO_EMPR)  
                           
 Select @VSTI_CAMB_BASE = NULL                
 Select @VDFE_ASTO_CNTB = NULL                
 Select @VSCO_MONE_BASE = Null                            
 Select @VDFE_DOCU      = Null                            
 Select @VSTI_DOCU      = Null                            
 Select @VSNO_CORT_CLIE = Null                            
 Select @VSNU_RUCS_CLIE = Null                            
 Select @VSCO_MONE      = Null                            
 Select @VNIM_IIGV_ORIG = 0.00                            
 Select @VNIM_TOTA_ORIG = 0.00                            
 Select @VNIM_EXPO_ORIG = 0.00                            
 Select @VNIM_AFEC_ORIX = 0.00                            
 Select @VNIM_INAF_ORIX = 0.00                            
 Select @VNIM_EXPO_ORIX = 0.00                            
 Select @VNIM_IIGV_ORIX = 0.00                            
 Select @VNIM_TOTA_ORIX = 0.00                            
 Select @VNIM_AFEC_SOLX = 0.00                            
 Select @VNIM_INAF_SOLX = 0.00                            
 Select @VNIM_EXPO_SOLX = 0.00                            
 Select @VNIM_IIGV_SOLX = 0.00                            
 Select @VNIM_TOTA_ORIX = 0.00                            
 Select @VNFA_CAMB = 0.00                            
 Select @VSNU_ASTO = Null            
                            
 Select @VNIM_TOTA_CONT = 0.00            
 Select @VNIM_IIGV_CONT = 0.00            
 Select @VNIM_EXPO_CONT = 0.00            
 Select @VNIM_AFEC_CONX = 0.00            
 Select @VNIM_INAF_CONX = 0.00            
 Select @VSCO_SUNA_REFE = NULL      
 Select @VSTI_DOCU_REFE = NULL      
 Select @VSNU_DOCU_REFE = NULL      
 Select @VDFE_DOCU_REFE = NULL      
 Select @VSTI_AUXI_EMPR = NULL  
 Select @VSCO_AUXI_EMPR = NULL  
                            
End                            

 /*-----   Acumula Movimientos - Provisiones        -----*/                            
   Select @CSNU_ASTO_BASE = Rtrim(@CSCO_UNID) + Rtrim(@CSCO_OPRC) +                             
    Substring( Convert(Varchar(3),100 + @CNNU_MESE),2,2) + Rtrim(@CSNU_ASTO)                            
                                  
-- OBTENGO EL CODIGO SUNAT DE LA TABLA DE DOCUMENTOS                            
 select @VSCO_SUNA_0001 = CO_SUNA                            
 FROM TTDOCU_CNTB                            
 WHERE TI_DOCU = @CSTI_DOCU_CNTB                            
 If @CSTI_DOCU_CNTB is not null                            
-- SI EL CO_SUNA DE LA TMPARA_CONT = CO_SUNA DE LA TTDOCU_CNTB                
 IF  @VSCO_SUNA_NOCR = @VSCO_SUNA_0001                            
-- SE OBTIENE EL TIPO DOCUMENTO DE REFERENCIA, EL NUMERO Y LA FECHA DE LA FACTURA ORIGEN                        
  Begin                            
    Select  @VSNU_DOCU_0001 = @CSNU_DOCU_REFE        
    Select  @VDFE_DOCU_0001 = @CDFE_DOCU_REFE        
                                                       
    --SI EL MES DEL DOCUMENTO ES IGUAL AL MES DEL REPORTE                            
    IF Year(@VDFE_DOCU_0001) + Month(@VDFE_DOCU_0001) = @INNU_ANNO + @INNU_MESE_FINA                            
      Begin                            
        SELECT @VNPO_IGV1 = @VNPO_IGV1_ANNO                            
        SELECT @VNPO_IGV2 = @VNPO_IGV2_ANNO                            
      End                            
                            
    --SI EL MES DEL DOCUMENTO ES DIFERENTE AL MES DEL REPORTE                            
    If Year(@VDFE_DOCU_0001)  + Month(@VDFE_DOCU_0001) != @INNU_ANNO + @INNU_MESE_FINA                            
      Select @VNPO_IGV1 = PO_IMPT_VEN1,                            
             @VNPO_IGV2 = PO_IMPT_VEN2                            
      From TTPORC_IMPT                            
      Where CO_EMPR = @ISCO_EMPR                            
      And   NU_ANNO = Year(@VDFE_DOCU_0001)                               
      And   NU_MESE = MONTH(@VDFE_DOCU_0001)                            
  End                            
 Else   -- IF  @VSCO_SUNA_NOCR <> @VSCO_SUNA_0001                            
  Begin                            
   If Year(@CDFE_DOCU) + Month(@CDFE_DOCU) = @INNU_ANNO + @INNU_MESE_FINA                              
    Begin                            
        SELECT @VNPO_IGV1 = @VNPO_IGV1_ANNO                            
        SELECT @VNPO_IGV2 = @VNPO_IGV2_ANNO                            
    End                            
                            
  --SI EL MES DEL DOCUMENTO ES DIFERENTE AL MES DEL REPORTE                            
  If Year(@CDFE_DOCU) + Month(@CDFE_DOCU) != @INNU_ANNO + @INNU_MESE_FINA                            
    Select @VNPO_IGV1 = PO_IMPT_VEN1,                            
           @VNPO_IGV2 = PO_IMPT_VEN2                            
    From TTPORC_IMPT                            
    Where CO_EMPR = @ISCO_EMPR                            
    And   NU_ANNO = Year(@CDFE_DOCU)                             
    And   NU_MESE = Month(@CDFE_DOCU)                            
 End --END DEL ELSE                            
 -- FIN DEL IF  @VSCO_SUNA_NOCR = @VSCO_SUNA_0001                            
------------------------------------------------------                            
                            
   -- Cuentas del Registro de VENTAS --------------                            
   If @CSID_CNTA = '002'            
   Begin                            
                            
     If @VSCO_MONE_BASE IS Null                            
     Begin                            
      Select @VSCO_AUXI = CO_AUXI_EMPR,                            
             @VSNO_CORT_CLIE = NO_AUXI,                              
             @VSNU_RUCS_CLIE = NU_RUCS                            
      From TMAUXI_EMPR                            
      Where  CO_EMPR = @ISCO_EMPR And                            
      TI_AUXI_EMPR = @CSTI_AUXI_EMPR And                            
      CO_AUXI_EMPR = @CSCO_AUXI                            
                            
      If @@rowcount = 0                            
     Begin                
       Select @VDFE_DOCU = Null                            
       Select @VSTI_DOCU = Null                            
       Select @VSNU_DOCU = Null                            
       Select @VSCO_AUXI = Null                             
       Select @VSNO_CORT_CLIE = Null                            
       Select @VSNU_RUCS_CLIE = Null                            
      End                            
      Else                             
      Begin      
                            
       Select @VDFE_DOCU = @CDFE_DOCU                            
       Select @VSTI_DOCU = @CSTI_DOCU_CNTB      
       Select @VSNU_DOCU = @CSNU_DOCU                            
      End                            
                            
      Select @VSCO_UNID = @CSCO_UNID                             
      Select @VSCO_OPRC = @CSCO_OPRC                            
      Select @VSNU_ASTO = @CSNU_ASTO                            
      Select @VSCO_SUNA_REFE = @CSCO_SUNA_REFE      
      Select @VSTI_DOCU_REFE = @CSTI_DOCU_REFE      
      Select @VSNU_DOCU_REFE = @CSNU_DOCU_REFE      
      Select @VDFE_DOCU_REFE = @CDFE_DOCU_REFE      
      Select @VSTI_AUXI_EMPR = @CSTI_AUXI_EMPR  
      Select @VSCO_AUXI_EMPR = @CSCO_AUXI  
                            
      Select @VSCO_MONE = @CSCO_MONE                            
      Select @VNFA_CAMB = Round(@CNFA_CAMB,3)                            
      Select @VSCO_MONE_BASE = @CSCO_MONE                            
      Select @VSTI_CAMB_BASE = @CSTI_CAMB                
      Select @VDFE_ASTO_CNTB = @CDFE_ASTO_CNTB              
          
      If @VSTI_CAMB_BASE = 'PAC'          
 Begin           
    Select @VSTI_CAMB_BASE = @CSST_CNTA_CAMB           
        End            
     End --If @VSCO_MONE_BASE IS Null                            
                            
     If @VSCO_MONE_BASE IS NOT Null                            
     Begin                            
      If @VSCO_MONE_BASE != @CSCO_MONE                            
      Begin                            
      Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,                 
      @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                      
      End                            
      If @CSTI_OPER_CNTB = 'CAR'                            
      Begin                            
       Select @VNIM_TOTA_ORIG = Round(@VNIM_TOTA_ORIG + @CNIM_MVTO_ORIG,2)                            
       Select @VNIM_TOTA_CONT = Round(@VNIM_TOTA_CONT + @CNIM_MVTO_CNTB,2)                  
      End                            
      Else If @CSTI_OPER_CNTB = 'ABO'                            
      Begin                            
       Select @VNIM_TOTA_ORIG = Round(@VNIM_TOTA_ORIG - @CNIM_MVTO_ORIG,2) 
       Select @VNIM_TOTA_CONT = Round(@VNIM_TOTA_CONT - @CNIM_MVTO_CNTB,2)                            
      End                            
     End                            
   End ---(If @CSID_CNTA = '002')                           
                            
                            
   /*----- Acumula Movimientos - IGV -----*/                             
   If @CSID_CNTA = '009'                            
   Begin                            
    If @VSCO_MONE_BASE IS NOT Null                            
    Begin                            
     If @VSCO_MONE_BASE != @CSCO_MONE                            
     Begin                            
      Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,                 
      @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                      
              
     End                            
     If @CSTI_OPER_CNTB = 'ABO'                            
     Begin                            
      Select @VNIM_IIGV_ORIG = Round(@VNIM_IIGV_ORIG + @CNIM_MVTO_ORIG,2)        
       Select @VNIM_IIGV_CONT = Round(@VNIM_IIGV_CONT + @CNIM_MVTO_CNTB,2)          
     End                         
     Else If @CSTI_OPER_CNTB = 'CAR'                            
     Begin                            
      Select @VNIM_IIGV_ORIG = Round(@VNIM_IIGV_ORIG - @CNIM_MVTO_ORIG,2)                            
       Select @VNIM_IIGV_CONT = Round(@VNIM_IIGV_CONT - @CNIM_MVTO_CNTB,2)                            
     End                            
    End                            
   End --(If @CSID_CNTA = '009')                    
                            
   -- Cuenta de Exportaciones --------------                            
   If @CSID_CNTA = '026'                            
   Begin   

 If @VSCO_MONE_BASE IS Null                            
     Begin                            
      Select @VSCO_AUXI = CO_AUXI_EMPR,                            
             @VSNO_CORT_CLIE = NO_AUXI,                              
             @VSNU_RUCS_CLIE = NU_RUCS                            
      From TMAUXI_EMPR                            
      Where  CO_EMPR = @ISCO_EMPR And                            
      TI_AUXI_EMPR = @CSTI_AUXI_EMPR And                            
      CO_AUXI_EMPR = @CSCO_AUXI                            
                            
      If @@rowcount = 0                            
     Begin                
       Select @VDFE_DOCU = Null                            
       Select @VSTI_DOCU = Null                            
       Select @VSNU_DOCU = Null                            
       Select @VSCO_AUXI = Null                             
       Select @VSNO_CORT_CLIE = Null                            
       Select @VSNU_RUCS_CLIE = Null                            
      End                            
      Else                             
      Begin      
                            
       Select @VDFE_DOCU = @CDFE_DOCU                            
       Select @VSTI_DOCU = @CSTI_DOCU_CNTB      
       Select @VSNU_DOCU = @CSNU_DOCU                            
      End                            
                            
      Select @VSCO_UNID = @CSCO_UNID                             
      Select @VSCO_OPRC = @CSCO_OPRC                            
      Select @VSNU_ASTO = @CSNU_ASTO                            
      Select @VSCO_SUNA_REFE = @CSCO_SUNA_REFE      
      Select @VSTI_DOCU_REFE = @CSTI_DOCU_REFE      
      Select @VSNU_DOCU_REFE = @CSNU_DOCU_REFE      
      Select @VDFE_DOCU_REFE = @CDFE_DOCU_REFE      
      Select @VSTI_AUXI_EMPR = @CSTI_AUXI_EMPR  
      Select @VSCO_AUXI_EMPR = @CSCO_AUXI  
                            
      Select @VSCO_MONE = @CSCO_MONE                            
      Select @VNFA_CAMB = Round(@CNFA_CAMB,3)                            
      Select @VSCO_MONE_BASE = @CSCO_MONE                            
      Select @VSTI_CAMB_BASE = @CSTI_CAMB                
      Select @VDFE_ASTO_CNTB = @CDFE_ASTO_CNTB              
          
      If @VSTI_CAMB_BASE = 'PAC'          
        Begin           
          Select @VSTI_CAMB_BASE = @CSST_CNTA_CAMB           
        End            
     End --If @VSCO_MONE_BASE IS Null 
                         
    If 1=1--@VSCO_MONE_BASE IS NOT Null                            
    Begin                            
     If @VSCO_MONE_BASE != @CSCO_MONE                            
     Begin                            
      Exec SP_CONV_MONE_Q05 @ISCO_EMPR, @CSCO_MONE, @VSCO_MONE_BASE, @VSCO_MONE_BASE, @VSTI_CAMB_BASE, @VSTI_CAMB_BASE,                 
      @VNFA_CAMB,  @VDFE_ASTO_CNTB, @CNIM_MVTO_ORIG, 'P', @CNIM_MVTO_ORIG OUTPUT                      
     End                            
                            
     If @CSTI_OPER_CNTB = 'ABO'                            
     Begin                            
      Select @VNIM_EXPO_ORIG = Round(@VNIM_EXPO_ORIG - @CNIM_MVTO_ORIG,2)                            
       Select @VNIM_EXPO_CONT = Round(@VNIM_EXPO_CONT - @CNIM_MVTO_CNTB,2)                            
     End                            
     Else If @CSTI_OPER_CNTB = 'CAR'                            
     Begin                            
      Select @VNIM_EXPO_ORIG = Round(@VNIM_EXPO_ORIG + @CNIM_MVTO_ORIG,2)                            
       Select @VNIM_EXPO_CONT = Round(@VNIM_EXPO_CONT + @CNIM_MVTO_CNTB,2)                            
     End                            
    End                            
   End --(If @CSID_CNTA = '026')                            
                            
Fetch CU_TXMVTO_CNTB_Q47_1 into                    
    @CDFE_DOCU, @CSTI_DOCU_CNTB, @CSNU_DOCU, @CSCO_UNID, @CSCO_OPRC, @CNNU_MESE,                             
    @CSNU_ASTO, @CSTI_AUXI_EMPR, @CSCO_AUXI, @CSCN_CNTB_EMPR, @CSTI_OPER_CNTB,                             
    @CSCO_MONE, @CNFA_CAMB, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSID_CNTA,                            
    @CNPO_REN1, @CNPO_REN2, @CNPO_IGV1,      @CNPO_IGV2, @CDFE_ASTO_CNTB, @CSTI_CAMB,       
    @CSST_CNTA_CAMB, @CSCO_SUNA_REFE, @CSTI_DOCU_REFE, @CSNU_DOCU_REFE,@CDFE_DOCU_REFE                                
                            
 End                            
 Close CU_TXMVTO_CNTB_Q47_1                            
 Deallocate CU_TXMVTO_CNTB_Q47_1                            

Select @VNIM_VALO_BASE = IsNull(T1.IM_AFEC_CNTB,0) + IsNull(T1.IM_INAF_CNTB,0) + IsNull(IM_EXPO_CNTB,0), 
@VNIM_VALO_IIGV = IsNull(T1.IM_IIGV_CNTB,0)
From #TWMVTO_APAG_0002 t1
  
           
Return                            
/*--------------------------------- Fin ------------------------------------*/              
   
  
  
  
  







GO
